import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import postCssPxToRem from "postcss-pxtorem"
import autoprefixer from 'autoprefixer'
// https://vitejs.dev/config/
export default defineConfig({
    plugins: [
        vue(),
        AutoImport({
            resolvers: [ElementPlusResolver()],
        }),
        Components({
            resolvers: [ElementPlusResolver()],
        }),
    ],
    server: {
        host: '0.0.0.0',	//解决“vite use `--host` to expose”
        port: 8080,
        open: true,

    },
    resolve: {
        alias: [
            {
                find: '@',
                replacement: resolve(__dirname, 'src')
            }
        ]
    },
    css: {
        postcss: {
            plugins: [
                autoprefixer({
                    overrideBrowserslist: [
                        'Android 4.1',
                        'iOS 7.1',
                        'Chrome > 31',
                        'not ie <= 11',  //不考虑IE浏览器
                        'ff >= 30', //仅新版本用“ff>=30
                        '> 1%',//  全球统计有超过1%的使用率使用“>1%”;
                        'last 2 versions', // 所有主流浏览器最近2个版本
                    ],
                    grid: true,// 开启grid布局的兼容(浏览器IE除外其他都能兼容grid，可以关闭开启)

                }),
                postCssPxToRem({
                    // 这里的rootValue就是你的设计稿大小
                    rootValue: 192,
                    unitPrecision: 2, // 计算结果保留 2 位小数
                    selectorBlackList: ['.no-rem', 'no-rem'], // 要忽略的选择器并保留为px。
                    propList: ['*'], // 可以从px更改为rem的属性  感叹号开头的不转换
                    replace: true, // 转换成 rem 以后，不保留原来的 px 单位属性
                    mediaQuery: true, // 允许在媒体查询中转换px。
                    minPixelValue: 2, // 设置要替换的最小像素值。
                    exclude: /node_modules/i // 排除 node_modules 文件(node_modules 内文件禁止转换)
                })
            ]
        }
    }
})
